Computing systems that store data in persistent storage devices often cache data and metadata in memory in order to improve performance. Some caching schemes are distributed. For example, U.S. Pat. No. 8,943,271, whose disclosure is incorporated herein by reference, describes systems and methods that aggregate memory capacity of multiple computers into a single unified cache, via a layering arrangement.
U.S. Patent Application Publication 2015/0312366, whose disclosure is incorporated herein by reference, describes a method including, in a plurality of compute nodes that communicate with one another over a communication network, running one or more Virtual Machines (VMs) that access storage blocks stored on non-volatile storage devices coupled to at least some of the compute nodes. One or more of the storage blocks accessed by a given VM, which runs on a first compute node, are cached in a volatile memory of a second compute node that is different from the first compute node. The cached storage blocks are served to the given VM.
U.S. Pat. No. 7,386,662, whose disclosure is incorporated herein by reference, describes systems and methods for performing cache and I/O management in a multi-layer storage virtualization environment. Block virtualization may be implemented at various layers, each with one or more storage entities. One storage entity may coordinate and leverage the cache and the caching mechanism available with another storage entity. The storage entities may be at the same layer (horizontal cache coordination) or at different layers (vertical cache coordination). Cache coordination may include application-assisted read-ahead.
PCT International Publication WO 2001/038983, whose disclosure is incorporated herein by reference, describes a process for managing a distributed cache that stores cache information at a plurality of participating nodes of a network. The distributed cache includes a plurality of cache entries each having an associated portion of the cache information, each of the participating nodes including an associated local memory storage system for storing information including a local cache database for storing locally owned ones of the cache entries.